package com.kotlin.flong.coroutines

import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withTimeout

/**
 * @Author:liangjl
 * @Date: 2020/7/7-19:10
 * @Eamil:jilongliang@sina.com
 * @Description:
 * 我们在使用协程时，如果取消了协程，那么很大一部分原因都在于协程的执行时间超过了某个设定值，我们可以通过手工引用与协程对应的job
 * 的方式来启动一个单独的协程用于取消协程，不过kotlin提供了一个内建的函数来帮助我们又快又好的做到这一点
 */
fun main() = runBlocking {
    //此程序会抛出一个TimeoutCancellationException异常
    withTimeout(1900) {
        repeat(500) { i ->
            println("hello : $i")
            delay(400)
        }

    }

}